Real-time projection management

ABSTRACT

An exemplary method includes defining an environment, formulating an anti-keystoning algorithm based at least in part on the defined environment, projecting a laser image from a source to a surface of the defined environment, determining at least one vector parameter with respect to the source and the surface and correcting the laser image based on the anti-keystoning algorithm and the at least one vector parameter. Various other apparatuses, systems, methods, etc., are also disclosed.

TECHNICAL FIELD

Subject matter disclosed herein generally relates to techniques formanaging projected images.

BACKGROUND

Distortion, such as the so-called keystone or tombstone effect, occurswhen an image is projected onto a surface at an angle that deviates fromthe angle normal to the surface. Accordingly, to present an undistortedimage, a projector is often carefully positioned in a room at an angleperpendicular to a projection screen. Many times, the optimal projectorposition for a room imposes restrictions, for example, as to seatingarrangements, viewing angles, etc. Inflexible projection systems candistract from a viewer's experience. As described herein, variousexemplary technologies provide enhanced projection flexibility that canenrich content consumption.

SUMMARY

An exemplary method includes defining a model for an environment,projecting a laser image from a source to a surface of the environment,determining at least one vector parameter with respect to the source andthe surface and correcting the laser image based on the model, ananti-keystoning algorithm and the at least one vector parameter. Variousother apparatuses, systems, methods, etc., are also disclosed.

BRIEF DESCRIPTION OF THE DRAWINGS

Features and advantages of the described implementations can be morereadily understood by reference to the following description taken inconjunction with the accompanying drawings.

FIG. 1 is a diagram of a conventional projection system with a keystonedimage;

FIG. 2 is a diagram of keystoned images and some associated equationsthat approximate keystone effect distortion;

FIG. 3 is a diagram of an exemplary projector that includes distortioncorrection circuitry;

FIG. 4 is a diagram of exemplary techniques for defining a model for anenvironment for purposes of distortion correction;

FIG. 5 is a diagram of an exemplary method for correcting imagedistortion;

FIG. 6 is a diagram of an exemplary method for correcting imagedistortion;

FIG. 7 is a diagram of an exemplary selection device and method formanipulating projected images; and

FIG. 8 is a diagram of an exemplary machine, which may be a clientdevice, a server or other apparatus.

DETAILED DESCRIPTION

The following description includes the best mode presently contemplatedfor practicing the described implementations. This description is not tobe taken in a limiting sense, but rather is made merely for the purposeof describing the general principles of the implementations. The scopeof the described implementations should be ascertained with reference tothe issued claims.

FIG. 1 shows a conventional projector 100 in a cube-shaped room thatprojects an image 160 onto a wall where the angle of projection differsfrom the normal of the wall. As shown, the keystone effect causes thelength of the top of the image to be longer than the length of thebottom of the image. In this example, the image has a long top side (L)and a short bottom side (S).

FIG. 2 shows the projector 100 and projected image 160 of FIG. 1 alongwith a vertical keystone equation and a horizontal keystone equationwhere each equation can approximate a distortion ratio of a length of along side to a length of a short side of an image (e.g., L_(v), L_(h),S_(v), S_(h)). In each of the keystone equations, the angle α representsa deviation between the projection angle and the normal of theprojection surface and the angle ε represents a beam angle. In atwo-dimensional example for vertical or horizontal displacement from anormal of the surface the image is being projected onto (e.g., normal atcenter of image), given the projection deviation angle and the beamangle, the distortion may be estimated by an appropriate one of thekeystone equations. As indicated, a keystone effect may occurvertically, horizontally or along multiple directions. Where bothvertical and horizontal displacements exist, then both equations may beused to correct image distortion. Further, as described herein, a rollangle may be optionally accounted for when deciding whether or how tocorrect image distortion.

FIG. 3 shows two examples of an exemplary projector 300 in a localcoordinate system and as projecting a distortion corrected image 360onto an embedded screen or a projection surface. In the examples of FIG.3, the exemplary projector 300 includes an embedded screen 301, one ormore lasers 302, optics 304, a scanning mirror 306, control circuitry308, distortion correction circuitry 310 and one or more types ofcircuitry that can provide localization information for use by thedistortion correction circuitry 310. For example, the projector 300 mayinclude distance circuitry 322, accelerometer circuitry 324, gyroscopecircuitry 326, image capture circuitry 328 or multiple types oflocalization circuitry 330 (e.g., any combination of the foregoing typesof circuitry).

In the example of FIG. 3, the local coordinate system of the projector300 has an associated vector aligned along its z-axis, which may be anaxis of projection associated with a center of a projected image. Asdescribed herein, localization information may include vector directionand vector magnitude (e.g., distance to a projection surface). Asdescribed herein, given a defined environment (e.g., a model of anenvironment), a field of view angle (e.g., equivalent of a beam angle)and information sufficient to determine the deviation angle (or angles)between the normal of a projection surface and a projection angle, theexemplary projector 300 can correct for keystone effect distortion usingan anti-keystoning algorithm. While the equation of FIG. 2 is shown intwo-dimensions, a three-dimensional anti-keystoning algorithm may beformulated and implemented by an exemplary projector (e.g., optionallyusing two 2D equations). Further, an exemplary method may optionallyaccount for roll angle (see, e.g., pitch, yaw and roll).

As indicated in FIG. 3, the projector 300 can modulate one or more laserbeams to project an image. Such a projector may project an image byscanning a pixel at a time (e.g., akin to an electron beam of a CRT) orby optically spreading and then modulating a laser and scanning a lineat a time (e.g., where the line is modulated in a manner akin to DigitalLight Processing). Whether an image is projected via a pixel-by-pixel ora line scanning process, as described herein, an exemplary imagedistortion correction technique can adjust the scanning process topresent a corrected image (e.g., corrected to account for keystoneeffect distortion). As described herein, projection may be frontprojection or back projection. A projector may include circuitry toaccount for front or back projection. Where a projector includes anembedded screen, such a screen may be configured for front projection orback projection.

As an example of an exemplary image correction method, considerregistering a corner of a room where three planar surfaces meet andspecifically where the corner is defined by a point where three edgesmeet. Such a registration process may capture an image of the corner,apply an edge detection technique to identify the three edges and thendefine a model of the environment. In this example, the three edges maybecome a Cartesian coordinate system of the model (e.g., X, Y, Z,optionally considered a global or environment coordinate system) wherethe origin is associated with a particular vector angle of theprojector. Further, the projector may acquire a distance or vectormagnitude from the projector to the corner. Given the corner-definedmodel, if the projector maintains its location in the environment andmerely alters its vector angle, the new vector angle can be used inconjunction with the model to determine a relationship between theprojected image and one of the planar surfaces (e.g., where the modelprovides the normal at the point where the vector intersects the planarsurface). The relationship may rely on the angles described with respectto FIG. 2 and optionally a pair of two-dimensional anti-keystoningequations (see, e.g., vertical equation of FIG. 2) that can correct fora horizontal keystone effect and a vertical keystone effect. Ininstances where the projector changes its location in the environment,the projector may provide a vector angle and a vector magnitude todetermine a relationship between the projected image and one of theplanar surfaces. As described herein, a particular real-time correctionmethod respond to a change in vector angle for a given projectorlocation or a particular real-time correction method may respond to achange in projector location where such a change may include a change invector angle.

A particular laser projector may include three lasers for red, green andblue (RGB) color components, respectively, where beams of the lasers canbe combined using an optical component or components. In such anexample, the combined beam can be directed to a scanning mirror. Toproject an image, control circuitry controls the scanning mirror togenerate each pixel of the image. As described herein, exemplarydistortion correction circuitry can assist in controlling a scanningmirror, for example, to correct an image for keystone effect distortion.Such circuitry may be configured to receive localization information(e.g., vector information) and correct for image distortion inreal-time. Accordingly, an exemplary laser projector may be manipulatedin real-time, within an environment, to project a distortion correctedimage onto a surface of the environment.

As mentioned, the projector 300 includes an optional embedded screen301. As described herein, a projector with one or more embedded screensmay include dual or multiple modes that account for projection to one ormore embedded screens and for projection to a surface of an environment.Depending on the configuration of an embedded screen with respect to itssource, some distortion of an image projected on the embedded screen mayoccur. As shown in FIG. 3, in one mode, the projector 300 may project toan embedded screen 301 with distortion correction as appropriate whilein another mode (e.g., where the embedded screen is closed or otherwiserepositioned), the projector 300 can project to an external projectionsurface with distortion correction. In another mode, a projector mayproject to both an embedded screen and an external projection surfacewhere distortion correction occurs for images projected to both, asappropriate. The projector 300 may include circuitry that adjusts animage for front projection or back projection (e.g., where projection ofan image on an embedded screen relies on back projection and where achange occurs to project the image via front projection onto a surfaceof an environment).

FIG. 4 shows a projector 400 along with an exemplary definition process410 to define a model 420 for an environment. The definition process 410may rely on one or more analysis techniques 430. The example of FIG. 4shows a technique for direction analysis via one or more orientationsensors 434 and a technique for image feature analysis via one or moreimage sensors 438. For example, the technique 434 may rely on one ormore of the distance circuitry 322, the accelerometer circuitry 324 andthe gyroscope circuitry 326 of FIG. 3 while the technique 438 may relyon the image capture circuitry 328 of FIG. 3. In the example of FIG. 4,the defined model 420 for the environment may be based on the technique434, the technique 438, a combination of techniques, etc.

As to the technique 434, a user may aim the projector 400 successivelyat corner A, B and C of the environment. At each corner, localizationcircuitry may register a vector direction where three vector directionsand a distance define a plane (e.g., a back wall of the environment). Inthis example, the distance may be approximated by a chest-high distanceof an average human holding the projector 400 or the distance may beacquired as a magnitude for one of the vectors. In another example, auser may aim the projector 400 at three edges that form a corner andassume or acquire a distance. In this example, given the localizationinformation and assuming a cube-shaped model for the environment, amodel for the environment may be defined. While two examples have beengiven, various other examples exist where localization information isacquired and optionally assumptions are made.

As to the technique 438, a user may aim the projector 400 at a cornerand capture an image. By edge detection, the corner of the environmentmay be defined by a model. Where such an image capture occurs inconjunction with a distance measurement (e.g., a focus measurement),three surfaces of a cube-shaped environment may be defined. Where theprocess is repeated for another corner, four surfaces may be defined.Similarly, as more localization information is acquired, more surfacesof the environment may be defined by a model.

As indicated in FIG. 4, the model 420 for the environment may rely onassumptions such as a cube shape. In such an example, where a singlewall has been localized, four additional walls may be defined, at leastin part, via an extrusion of the single wall (e.g., extrusion in adirection normal to the wall surface).

FIG. 5 shows an exemplary projector 500 with respect to a localprojector coordinate system and an environment coordinate system (e.g.,and gravity) along with an exemplary method 540. In the example of FIG.5, the projector 500 includes localization circuitry to determinedirection and localization circuitry to determine distance. The method540 includes a definition block 544 for defining a model for anenvironment, for example, as explained with respect to FIG. 4. As shown,the method 540 includes a location block 548 for locating the projectorusing direction and distance information (i.e., localizationinformation). Based on the model for the environment and thelocalization information, per a correction block 552, the method 540includes automatically correcting an image for distortion.

In the example of FIG. 5, a user may aim the projector 500 at any of themodel-defined surfaces of the environment where the projector 500automatically corrects (in real-time) the projected image to account fordistortion due to the keystone effect. Further, the user may move in theenvironment as the local coordinate system of the projector is trackedwith respect to the coordinate system of the environment. In such anexample, a user may hold a handheld projector and walk throughout theenvironment while maintaining an image on a particular surface orprojecting the image onto any of the surfaces of the definedenvironment. In this example, where the user is a presenter, significantflexibility is added (e.g., the presenter may field a question from anaudience member and project an image on a surface near that audiencemember to assist with an answer to the question).

FIG. 6 shows an exemplary projector 600 that includes distance circuitryalong with an exemplary method 640. The method 640 includes a definitionblock 644, a location block 648 and a correction block 652. Per thedefinition block 644, the method 640 defines an environment, forexample, to provide a model for use with a distortion correctionalgorithm. Per the location block 648, the method 640 locates theprojector 600 by acquiring distance information. As shown in the exampleof FIG. 6, the projector 600 includes circuitry to determine distancesbetween the projector 600 and several walls of the environment.Specifically, where orthogonal distances to three walls are known, aprojection plane may be defined for the projector 600 to thereby locatethe projector. Given a model that defines the environment and theprojection plane, per the correction block 652, the method 640 mayautomatically correct a projected image for account for distortion suchas keystone effect distortion.

FIG. 7 shows a distorted image scenario 710 and a corrected imagescenario 720 along with an exemplary method 760 for manipulating anobject in a projected image. According to the method 760, per aselection block 764, a user makes a selection of an object in aprojected image. For example, in the scenarios 710, 720, the user pointsa pointing and selecting device 730 at a background image 714 or 724. Aselection may occur via a device 740 that include image capturecircuitry 742 (e.g., to locate a projected marker), via localizationcircuitry (e.g., at least partially built into the device 730 todetermine a direction with respect to a projected image) or acombination thereof. Per an implementation block 768, the device 740(e.g., a projector) implements manipulation circuitry 744, which mayinclude executing one or more software or firmware instructions. Forexample, the projector may lock onto a location of a point selectedusing the pointer. Per a manipulation block 772, the implementedmanipulation circuitry 744 may track movement of a marker or thepointing device 730 and manipulate the selected object in response tothe movement.

As shown in the scenarios 710, 720, a user selects a point on thebackground image 714 or 724 using the device 730 and then drags theimage to the right by moving the device 730. In this example, a controlobject 712 or 722 remains stationary in the projected field of view(FOV). In another example, the user may select the control object 712 or722 and cause some action to occur (e.g., play a song, display anotherimage, etc.). For example, in a scenario 750, an image of a keyboard 752is projected onto a surface. A user can manipulate the device 730 andimage capture circuitry 742 may register a bright spot of a certaincolor on the projected image with a control feature (e.g., a key of thekeyboard 752), In the scenario 750, a user may type a word using thekeyboard (e.g., “hello”). As described herein, image capture circuitry742 may identify or otherwise register a marker and manipulationcircuitry 744 may issue a command such as a keystroke command. In thescenario 750, a user may be able to select the image of the keyboard 752and cause it to move to a different location, change shape, disappear orchange transparency, etc. (e.g., while a background image and optionallyother displayed objects remain positioned). While the scenario 750 showsa keyboard, a menu or other type of control feature may be projected andcontrolled.

As described herein, the device 730 may allow for zooming, panning,scrolling, distortion correcting, defining boundaries, changing viewperspective (e.g., tilting) display of an image. With respect tozooming, the device 730 may be used to circle or outline a portion of aprojected image and then zoom in and display the selected portion. Asdescribed herein, “image” includes video images. Accordingly, the device730 may allow for pausing video, fast-forwarding video, rewinding video,display of a menu over video, etc.

As described herein, an exemplary method may include adjustinggranularity of an image based at least in part on localizationinformation. For example, as a projector is moved away from a projectionsurface, localization information may be input to a granularity controlcircuit that adjusts the number of pixels per inch of the projectedimage.

As described herein, various acts, steps, etc., can be implemented asinstructions stored in one or more computer-readable media. For example,one or more exemplary computer-readable media can includecomputer-executable instructions to instruct a processor to: define amodel for an environment, determine at least one vector parameter withrespect to a laser image projected onto a surface of the environment,and correct the laser image based on the model, an anti-keystoningalgorithm and the at least one vector parameter.

The term “circuit” or “circuitry” is used in the summary, description,and/or claims. As is well known in the art, the term “circuitry”includes all levels of available integration, e.g., from discrete logiccircuits to the highest level of circuit integration such as VLSI, andincludes programmable logic components programmed to perform thefunctions of an embodiment as well as general-purpose or special-purposeprocessors programmed with instructions to perform those functions.

While various exemplary circuits or circuitry have been discussed, FIG.8 depicts a block diagram of an illustrative exemplary computer system800. The system 800 may be a desktop computer system, such as one of theThinkCentre® or ThinkPad® series of personal computers sold by Lenovo(US) Inc. of Morrisville, N.C., or a workstation computer, such as theThinkStation®, which are sold by Lenovo (US) Inc. of Morrisville, N.C.;however, as apparent from the description herein, a client device, aserver or other machine may include other features or only some of thefeatures of the system 800.

As shown in FIG. 8, the system 800 includes a so-called chipset 810. Achipset refers to a group of integrated circuits, or chips, that aredesigned to work together. Chipsets are usually marketed as a singleproduct (e.g., consider chipsets marketed under the brands INTEL®, AMD®,etc.).

In the example of FIG. 8, the chipset 810 has a particular architecture,which may vary to some extent depending on brand or manufacturer. Thearchitecture of the chipset 810 includes a core and memory control group820 and an I/O controller hub 850 that exchange information (e.g., data,signals, commands, etc.) via, for example, a direct management interfaceor direct media interface (DMI) 842 or a link controller 844. In theexample of FIG. 8, the DMI 842 is a chip-to-chip interface (sometimesreferred to as being a link between a “northbridge” and a“southbridge”).

The core and memory control group 820 include one or more processors 822(e.g., single core or multi-core) and a memory controller hub 826 thatexchange information via a front side bus (FSB) 824. As describedherein, various components of the core and memory control group 820 maybe integrated onto a single processor die, for example, to make a chipthat supplants the conventional “northbridge” style architecture.

The memory controller hub 826 interfaces with memory 840. For example,the memory controller hub 826 may provide support for DDR SDRAM memory(e.g., DDR, DDR2, DDR3, etc.). In general, the memory 840 is a type ofrandom-access memory (RAM). It is often referred to as “system memory”.

The memory controller hub 826 further includes a low-voltagedifferential signaling interface (LVDS) 832. The LVDS 832 may be aso-called LVDS Display Interface (LDI) for support of a display device892 (e.g., a CRT, a flat panel, a projector, etc.). A block 838 includessome examples of technologies that may be supported via the LVDSinterface 832 (e.g., serial digital video, HDMI/DVI, display port). Thememory controller hub 826 also includes one or more PCI-expressinterfaces (PCI-E) 834, for example, for support of discrete graphics836. Discrete graphics using a PCI-E interface has become an alternativeapproach to an accelerated graphics port (AGP). For example, the memorycontroller hub 826 may include a 16-lane (×16) PCI-E port for anexternal PCI-E-based graphics card. An exemplary system may include AGPor PCI-E for support of graphics.

The I/O hub controller 850 includes a variety of interfaces. The exampleof FIG. 8 includes a SATA interface 851, one or more PCI-E interfaces852 (optionally one or more legacy PCI interfaces), one or more USBinterfaces 853, a LAN interface 854 (more generally a networkinterface), a general purpose I/O interface (GPIO) 855, a low-pin count(LPC) interface 870, a power management interface 861, a clock generatorinterface 862, an audio interface 863 (e.g., for speakers 894), a totalcost of operation (TCO) interface 864, a system management bus interface(e.g., a multi-master serial computer bus interface) 865, and a serialperipheral flash memory/controller interface (SPI Flash) 866, which, inthe example of FIG. 8, includes BIOS 868 and boot code 890. With respectto network connections, the I/O hub controller 850 may includeintegrated gigabit Ethernet controller lines multiplexed with a PCI-Einterface port. Other network features may operate independent of aPCI-E interface.

The interfaces of the I/O hub controller 850 provide for communicationwith various devices, networks, etc. For example, the SATA interface 851provides for erasing, reading and writing information on one or moredrives 880 such as HDDs, SDDs or a combination thereof. The I/O hubcontroller 850 may also include an advanced host controller interface(AHCI) to support one or more drives 880. The PCI-E interface 852 allowsfor wireless connections 882 to devices, networks, etc. The USBinterface 853 provides for input devices 884 such as keyboards (KB),mice and various other devices (e.g., cameras, phones, storage, mediaplayers, etc.).

In the example of FIG. 8, the LPC interface 870 provides for use of oneor more ASICs 871, a trusted platform module (TPM) 872, a super I/O 873,a firmware hub 874, BIOS support 875 as well as various types of memory876 such as ROM 877, Flash 878, and non-volatile RAM (NVRAM) 879. Withrespect to the TPM 872, this module may be in the form of a chip thatcan be used to authenticate software and hardware devices. For example,a TPM may be capable of performing platform authentication and may beused to verify that a system seeking access is the expected system.

The system 800, upon power on, may be configured to execute boot code890 for the BIOS 868, as stored within the SPI Flash 866, and thereafterprocesses data under the control of one or more operating systems andapplication software (e.g., stored in system memory 840). An operatingsystem may be stored in any of a variety of locations and accessed, forexample, according to instructions of the BIOS 868. Again, as describedherein, an exemplary device or other machine may include fewer or morefeatures than shown in the system 800 of FIG. 8. For example, theprojector 300 of FIG. 3 may include some or all of the features shown inthe system 800 (e.g., as part of control circuitry 308).

CONCLUSION

Although exemplary methods, devices, systems, etc., have been describedin language specific to structural features and/or methodological acts,it is to be understood that the subject matter defined in the appendedclaims is not necessarily limited to the specific features or actsdescribed. Rather, the specific features and acts are disclosed asexemplary forms of implementing the claimed methods, devices, systems,etc.

1. A method comprising: capturing an image of a corner of an environmentthat comprises a plurality of surfaces; based at least in part on thecaptured image, defining a model that models at least three differentplanar surfaces of the environment; projecting a laser image from asource to one of the plurality of surfaces of the environment;determining at least one vector parameter of a vector defined withrespect to the source and the one surface to orient the source withrespect to the model; and correcting the laser image based on the model,an anti-keystoning algorithm and the at least one vector parameter ofthe vector.
 2. The method of claim 1 wherein the at least one vectorparameter comprises a vector angle.
 3. The method of claim 1 wherein theat least one vector parameter comprises a vector magnitude.
 4. Themethod of claim 1 wherein the defining the model comprises settingangles between at least two surfaces of the plurality of surfaces of theenvironment.
 5. The method of claim 1 further comprising, for adifferent projection angle between the source and the one surface,determining at least one vector parameter of a vector defined withrespect to the source and the one surface for the different projectionangle, and correcting the image based on the model, the anti-keystoningalgorithm and the at least one vector parameter for the vector for thedifferent projection angle.
 6. The method of claim 5 wherein thedifferent projection angle corresponds to an adjustment to the positionof the source in the environment responsive to one or more computinginstructions.
 7. The method of claim 1 wherein the projecting comprisesprojecting the laser image from the source using multiple lasers.
 8. Themethod of claim 1 wherein the projecting comprises projecting the laserimage from the source using a scanning mirror.
 9. The method of claim 8further comprising controlling the scanning mirror to project thecorrected laser image.
 10. The method of claim 1 further comprisingprojecting a laser image from a source to a surface of an embeddedscreen and correcting the laser image based on a position of theembedded screen and an anti-keystoning algorithm.
 11. The method ofclaim 10 wherein the projecting a laser image from a source to a surfaceof an embedded screen comprises front projection or back projection tothe surface of the embedded screen.
 12. The method of claim 1 whereinthe laser image comprises a moving picture image.
 13. The method ofclaim 1 further comprising registering a marker projected from apointing device with respect to the corrected laser image and executingan instruction based on the registering.
 14. The method of claim 13wherein the registering registers the marker with respect to a controlgraphic of the corrected laser image.
 15. An apparatus comprising:source lasers configured to project an image; localization circuitrythat comprises image capture circuitry; one or more processors; controlcircuitry configured to detect edges in a captured image of a corner ofan environment that comprises a plurality of surfaces; based at least inpart on the detected edges, define a model for the environment thatmodels at least three different planar surfaces of the plurality ofsurfaces of the environment; localize the source lasers with respect toat least one of the modeled surfaces of the environment; and correct animage projected from the source lasers to one of the modeled surfaces ofthe environment based on the model, the localization of the sourcelasers and an anti-keystoning algorithm.
 16. The apparatus of claim 15wherein the localization circuitry comprises at least one member of agroup consisting of gyroscopic circuitry, magnetometer circuitry andrange-finding circuitry.
 17. The apparatus of claim 15 furthercomprising a scanning mirror operable in conjunction with the controlcircuitry to project a corrected image from the source lasers to the oneof the modeled surfaces.
 18. A system comprising: source lasersconfigured to project an image; localization circuitry that comprisesimage capture circuitry; a pointing device; one or more processors; andcontrol circuitry configured to detect edges in a captured image of acorner of an environment that comprises a plurality of surfaces; basedat least in part on the detected edges, define a model for theenvironment that models at least three different planar surfaces of theplurality of surfaces of the environment; project an image from thesource lasers to one of the modeled surfaces of the environment;localize the source lasers with respect to at least one of the modeledsurfaces of the environment; correct an image projected from the sourcelasers to the one of the modeled surfaces of the environment based onthe model, the localization of the source lasers and an anti-keystoningalgorithm; register a marker of the pointing device with respect to thecorrected image using at least the localization circuitry; and executean instruction by at least one of the one or more processors based onthe registration of the marker.
 19. The system of claim 18 wherein thelocalization circuitry comprises at least one member of a groupconsisting of gyroscopic circuitry, magnetometer circuitry andrange-finding circuitry.
 20. The method of claim 1 further comprisingdetecting edges in the captured image.
 21. The method of claim 20wherein the detecting edges detects three edges that define a Cartesiancoordinate system for the model.
 22. A method comprising: locating atleast three corners of a wall in an environment; defining a model of theenvironment by extruding the wall to define additional walls of theenvironment; projecting a laser image from a source to one of the wallsof the environment; determining at least one vector parameter of avector defined with respect to the source and the one wall to orient thesource with respect to the model; and correcting the laser image basedon the model, an anti-keystoning algorithm and the at least one vectorparameter of the vector.
 23. The method of claim 22 wherein theextruding extrudes the wall in a direction normal to a surface of thewall.